package com.raitcon.hibernate.bean;
// Generated 27/05/2014 07:54:56 AM by Hibernate Tools 3.2.1.GA


import java.util.HashSet;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;

/**
 * Grado generated by hbm2java
 */
@Entity
@Table(name="grado"
    ,schema="public"
)
public class Grado  implements java.io.Serializable {


     private int idGrado;
     private Anio anio;
     private Nivel nivel;
     private String descripcion;
     private String abreviatura;     
     private Set<CronogramaEvaluacion> cronogramaEvalucions = new HashSet<CronogramaEvaluacion>(0);
     private Set<Libreta> libretas = new HashSet<Libreta>(0);
     private Set<Seccion> seccions = new HashSet<Seccion>(0);
     private Set<GradoSeccion> gradoSeccions = new HashSet<GradoSeccion>(0);

    public Grado() {
    }
    
    
    public Grado(int idGrado) {
        this.idGrado = idGrado;
    }
	
    public Grado(int idGrado, Anio anio, Nivel nivel, String descripcion) {
        this.idGrado = idGrado;
        this.anio = anio;
        this.nivel = nivel;
        this.descripcion = descripcion;
    }
    public Grado(int idGrado, Anio anio, Nivel nivel, String descripcion, Set<CronogramaEvaluacion> cronogramaEvalucions, Set<Seccion> seccions, Set<GradoSeccion> gradoSeccions) {
       this.idGrado = idGrado;
       this.anio = anio;
       this.nivel = nivel;
       this.descripcion = descripcion;
       this.cronogramaEvalucions = cronogramaEvalucions;
       this.seccions = seccions;
       this.gradoSeccions = gradoSeccions;
    }
   
     @Id 
    
    @Column(name="id_grado", unique=true, nullable=false)
    public int getIdGrado() {
        return this.idGrado;
    }
    
    public void setIdGrado(int idGrado) {
        this.idGrado = idGrado;
    }
@ManyToOne(fetch=FetchType.LAZY)
    @JoinColumn(name="id_anio", nullable=false)
    public Anio getAnio() {
        return this.anio;
    }
    
    public void setAnio(Anio anio) {
        this.anio = anio;
    }
@ManyToOne(fetch=FetchType.LAZY)
    @JoinColumn(name="id_nivel", nullable=false)
    public Nivel getNivel() {
        return this.nivel;
    }
    
    public void setNivel(Nivel nivel) {
        this.nivel = nivel;
    }
    
    @Column(name="descripcion", nullable=false)
    public String getDescripcion() {
        return this.descripcion;
    }
    
    public void setDescripcion(String descripcion) {
        this.descripcion = descripcion;
    }
@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.LAZY, mappedBy="grado")
    public Set<CronogramaEvaluacion> getCronogramaEvalucions() {
        return this.cronogramaEvalucions;
    }
    
    public void setCronogramaEvalucions(Set<CronogramaEvaluacion> cronogramaEvalucions) {
        this.cronogramaEvalucions = cronogramaEvalucions;
    }
@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.LAZY, mappedBy="grado")
    public Set<Seccion> getSeccions() {
        return this.seccions;
    }
    
    public void setSeccions(Set<Seccion> seccions) {
        this.seccions = seccions;
    }
@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.LAZY, mappedBy="grado")
    public Set<GradoSeccion> getGradoSeccions() {
        return this.gradoSeccions;
    }
    
    public void setGradoSeccions(Set<GradoSeccion> gradoSeccions) {
        this.gradoSeccions = gradoSeccions;
    }

@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.LAZY, mappedBy="grado")
    public Set<Libreta> getLibretas() {
        return this.libretas;
    }
    
    public void setLibretas(Set<Libreta> libretas) {
        this.libretas = libretas;
    }

    /**
     * @return the abreviatura
     */
     @Column(name="abreviatura", nullable=true , length = 5)
    public String getAbreviatura() {
        return abreviatura;
    }

    /**
     * @param abreviatura the abreviatura to set
     */
    public void setAbreviatura(String abreviatura) {
        this.abreviatura = abreviatura;
    }


}


